
/**
* 
* ====================================================================
*
* @author apov <apov@ymail.com>
*/ 
// AllUser_RoomExit.h
//

#pragma once

#include "BaseDefine.h"

class Room;
class User;
class AllUser_RoomExit{
public:
	virtual int exit( Room* room ) = 0;

	AllUser_RoomExit(){};
	virtual ~AllUser_RoomExit(){};

protected:
private:
};

class AllUser_RoomExit_Decorator : public AllUser_RoomExit{
public:
	int exit( Room* room ){
		if( preProcess_ )
			return preProcess_->exit( room );

		return 0;
	}

	AllUser_RoomExit_Decorator( AllUser_RoomExit* preProcess ){
		preProcess_ = preProcess;
	}

	virtual ~AllUser_RoomExit_Decorator(){};

protected:

private:
	AllUser_RoomExit* preProcess_;
};
